#pragma once
#include <Windows.h>
#include <WindowsX.h>

namespace Proton 
{
	namespace Managers
	{
		class PMAbstractWindow
		{
		protected:
			HWND hWnd;
			HINSTANCE hInstance;
			WNDCLASSEX wc;
			const TCHAR *windowName;
			const TCHAR *className;
		public:
			PMAbstractWindow(void);
			~PMAbstractWindow(void);

			static LRESULT CALLBACK msgRouter(HWND, UINT, WPARAM, LPARAM);
			virtual LRESULT CALLBACK wndProc(HWND, UINT, WPARAM, LPARAM) = 0;

			virtual bool Create(unsigned int width, unsigned int height);
			HWND getWindowHandle(){ return hWnd; }
		};

		
	}
}

